package xcu.lxj.nettychat.chat.service.inter;

import xcu.lxj.nettychat.chat.domain.vo.request.admin.AdminAddReq;
import xcu.lxj.nettychat.chat.domain.vo.request.admin.AdminRevokeReq;
import xcu.lxj.nettychat.chat.domain.vo.request.member.MemberExitReq;
import xcu.lxj.nettychat.chat.domain.vo.response.GroupBaseInfoResp;
import xcu.lxj.nettychat.common.domain.vo.request.CursorPageBaseReq;
import xcu.lxj.nettychat.common.domain.vo.response.CursorPageBaseResp;

/**
 * @Author XinJian Lei
 * @Date 2024/10/7 16:26
 * @Version 1.0
 */
public interface GroupMemberService {
    /**
     * 增加管理员
     *
     * @param uid     用户ID
     * @param request 请求信息
     */
    void addAdmin(Long uid, AdminAddReq request);

    /**
     * 撤销管理员
     *
     * @param uid     用户ID
     * @param request 请求信息
     */
    void revokeAdmin(Long uid, AdminRevokeReq request);

    /**
     * 退出群聊
     *
     * @param uid     用户ID
     * @param request 请求信息
     */
    void exitGroup(Long uid, MemberExitReq request);

    CursorPageBaseResp<GroupBaseInfoResp> getGroupBaseInfoList(CursorPageBaseReq req, Long uid);
}


